#include <linux/module.h>
#include <linux/kernel.h> 
#include <linux/errno.h> 
#include <linux/types.h> 
#include <linux/interrupt.h>

MODULE_LICENSE( "GPL" );
MODULE_AUTHOR( "Vinson Yan <vinson.one.yan@gmail.com>" );

char task_data[] = "This is tasklet schedule function.";
struct tasklet_struct tasklet;

static void task_func( unsigned long data )
{
	char *var = (char *)data;

	printk( "%s.\n", var );

	return ;	
}

static int __init task_init( void )
{
	int ret = 0;

	tasklet_init( &tasklet, task_func, ( unsigned long )task_data );

	tasklet_schedule( &tasklet );

	return ret;
}

static void __exit task_fint( void )
{
	tasklet_kill( &tasklet );
}

module_init( task_init );
module_exit( task_fint );
